package love.xiaohh.minio.services;

import love.xiaohh.minio.entities.FileStore;
import love.xiaohh.minio.entities.dto.Base64ImageUploadDTO;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;

/**
 * <p>
 * 文件存取的服务层
 * </p>
 *
 * @author XiaoHH
 * @version 1.0
 * @date 2021-11-21 星期日 9:51:33
 * @file FileStoreService.java
 */
public interface FileStoreService {

    /**
     * 上传普通文件
     *
     * @param file    普通文件
     * @return 文件对象
     */
    FileStore upload(MultipartFile file) throws SQLException;

    /**
     * 上传base64格式的图片
     *
     * @param base64ImageUpload base64格式图片的数据传输对象
     * @return 文件对象
     */
    FileStore uploadBase64(Base64ImageUploadDTO base64ImageUpload) throws IOException;

    /**
     * 下载或者在线预览文件
     *
     * @param download 是否下载；0=在线预览,1=下载
     * @param uuid     文件的uuid
     */
    void download(Integer download, String uuid, HttpServletResponse response) throws IOException;

    /**
     * 删除一个文件
     *
     * @param uuid 文件的uuid
     */
    void removeFileByUuid(String uuid);
}
